Fast MDCT (modified discrete cosine transform) approximation of a windowed sinusoid

ABSTRACT

Methods and apparatus are disclosed for approximating an MDCT coefficient of a block of windowed sinusoid having a defined frequency, the block being multiplied by a window sequence and having a block length and a block index. A finite trigonometric series is employed to approximate the window sequence. A window summation table is pre-computed using the finite trigonometric series and the defined frequency of the sinusoid. A block phase is computed for each block with the defined frequency, the block length and the block index. An MDCT coefficient is approximated by the dot product of a phase vector computed using the block phase with a corresponding row of the window summation table.

BACKGROUND OF THE INVENTION

The present invention relates generally to methods for audio signalbandwidth compression and to digital audio test and measurement systems.In a specific application, the present invention applies to thegeneration of sinusoidal test signals in MDCT-based (modified discretecosine transform) coding formats for testing the audio performance ofdevices which accept and decode such signals.

MDCT-based audio codecs are in widespread use today for the purposes ofreducing transmission bandwidth or storage requirements for digitalaudio programs. Using the MDCT, it is possible to obtain a criticallysampled (i.e. no redundant information) transform representation with50% overlapping signal blocks. When analysis/synthesis windowssatisfying the symmetry requirements of TDAC (time domain aliasingcancellation) are used, the MDCT is perfectly invertible. For moredetails refer to Princen and Bradley, “Analysis/Synthesis Filter BankDesign Based on Time Domain Aliasing Cancellation,” IEEE Transactions onAcoustics, Speech and Signal Processing, Vol. ASSP-34, No. 5, October1986, pp. 1153-1161.

Audio codecs using the MDCT include Dolby® AC-3, MPEG-1 Audio Layer 3,and MPEG-4 AAC. Generally speaking these codecs use the MDCT as a timeto frequency transformation and transmit quantized MDCT coefficients ata reduced bitrate for synthesis in the decoder. Psychoacoustic modelsare employed to determine the perceptual relevance of the variousspectral components which result from each block MDCT. Based on thesemodels, MDCT bins containing little energy or those which areperceptually masked by nearby dominant frequencies are quantized withfewer bits of resolution.

Many devices for home audio, mobile audio, wireless communications, etc.now accept coded audio as a primary input audio format. For testing suchdevices it is convenient to deliver MDCT-coded test signals directly tothe audio decoder in the device under test (DUT). There are many classesof signals which are used as stimulus for audio testing applications butby far the most commonly employed is the sinusoid. Sinusoidal signalsare nearly ubiquitous for testing applications since they areeigenfunctions of any linear time invariant (LTI) system. Frequency andphase response may be computed by observation of the amplitude and phaserelationship of input and output sinusoids at the frequencies ofinterest. In addition, sinusoidal test signals may be useful forcharacterizing the non-linear behavior of a system. Distortion productscan appear in many forms, but are most easily identified by spurious(i.e. unwanted) spectral components appearing at the device output inresponse to a stimulus of one or more sinusoidal test signals.

U.S. Pat. No. 5,357,594 (Fielder) discloses a system for subband audiocoding employing a specially designed analysis-synthesis window. TheKaiser-Bessel Derived (KBD) window is constructed by a normalizationprocess applied to an ordinary Kaiser-Bessel window such that theresulting window satisfies the TDAC perfect reconstruction conditions.The KBD window allows a convenient parametric tradeoff between main lobewidth and side lobe attenuation by adjustment of the window parameter α.The Dolby® AC-3 codec uses the KBD window (α=4) as a symmetricanalysis-synthesis window for the MDCT.

FIG. 1 generally depicts a prior art system for delivering sinusoidaltest signals using a conventional prior art coding system similar tothat disclosed in Fielder's patent. First is an apparatus for generationof a sinusoidal sequence 110, which may be implemented by a number ofknown methods including wave tables, Taylor series approximation or witha digitally implemented oscillator. This sequence is provided as inputto a conventional MDCT-based audio codec 120, contained in FIG. 1 by adashed line boundary. The input sequence is conventionally divided into50% overlapping blocks and windowed 121 with an appropriate windowsequence satisfying TDAC symmetry requirements. Windowed signal blocksare sent to an MDCT transformer 122 which produces a set of real-valuedtransform coefficients. The resulting MDCT coefficients are provided asinput to a subband bit allocation process 123, which will typicallyemploy a psychoacoustic masking model to minimize the perceptual impactof subband quantization with a given bit allocation budget. Based on thebit allocation thus produced, the MDCT coefficients are quantized 124and assembled 125 into a properly formatted bitstream. This bitstreamleaves the codec 120 and is finally transmitted or stored 130 for laterdecoding.

There are firms presently offering coded test signal generation systemswhich follow the lines of the exemplary prior art system 100. AudioPrecision offers the OPT-2711 Dolby® Digital Generator upgrade to their2700 series audio analyzers. The combined system contains a test signalgenerator followed by an encoder and hardware for delivering testsignals in an AC-3 bitstream transmitted on an IEC-61937 interface. TheOPT-2711 and similar devices employing this paradigm for the generationof MDCT-coded sinusoidal signals have the computational tasks ofindependently generating low-distortion sinusoidal sequences, windowingand performing the MDCT on this data, as well as computing bitallocations, quantizing and properly formatting the resultant bitstream.

A commonly encountered definition of the MDCT is:

${X\lbrack k\rbrack} \equiv {\sum\limits_{n = 0}^{N - 1}{{w\lbrack n\rbrack}{x\lbrack n\rbrack}{{\cos\left\lbrack {\frac{2\;\pi}{N}\left( {n + \frac{1}{2} + \frac{N}{4}} \right)\left( {k + \frac{1}{2}} \right)} \right\rbrack}.}}}$

Evaluated directly the MDCT requires O(N²) computations per block.Fortunately more efficient methods of computing the MDCT have beendevised in recent years. U.S. Pat. No. 6,430,529 (Huang) and U.S. Pat.No. 5,592,584 (Ferreira and Johnston) describe techniques for MDCTcomputation having an asymptotic complexity of only O(N log₂N). Thesefaster methods exploit the fact that the MDCT is mathematicallyequivalent to a time and frequency-shifted DFT. Using this equivalencethe MDCT may be computed as a composition of FFT and complex pre- andpost-multiplications.

It is desirable for many applications to further reduce thecomputational and memory requirements of producing MDCT-coded sinusoidaltest signals. Unfortunately the MDCT has relatively complex mathematicalproperties when compared with other common discrete transforms. Manyuseful and important theorems which apply to a time-invariant transformsuch as the DFT do not apply directly to the MDCT. Most significantly tothis disclosure, it is not possible to produce the MDCT of atime-translated sinusoid by simple multiplication with a phasor sequencein the transform domain.

An analytical approximation to the MDCT of a sinusoid is due to L.Daudet and M. Sandler, in “MDCT Analysis of Sinusoids: Exact Results andApplications for Coding Artifacts Reduction,” IEEE Transactions onSpeech and Audio Processing, Vol. 12, No. 3, May 2004, pp. 302-312. Theauthors assumed that a basic sine analysis window was used, and with afew other simplifying assumptions, the authors derived an approximationto the MDCT of a sinusoid for the purpose of understanding some commonaudible artifacts in MDCT-based audio codecs. However the authors didnot present results which may be extended easily to otheranalysis/synthesis windows, and the approximation presented isunsuitable for low-distortion waveform synthesis. Moreover, the resultsderived in their paper became very poor at the extremes of the spectrum(i.e. for sinusoids with discrete-time frequency Ω close to extremalvalues 0 or π).

U.S. Pat. No. 7,058,571 (Tshushima, et al) discloses a method forinjecting sinusoids into a single band of a real-valued filter bank(e.g. MDCT) while suppressing aliasing products that can appear inadjacent subbands. The method presented in Tshushima's patent is limitedhowever to the synthesis of sinusoids at the center frequency of afilter bank subband. Furthermore the simple two-band aliasingsuppression model Tshushima employed is insufficient for low distortionsinusoid synthesis with the MDCT. In the MDCT of a sinusoid there are alarge number of MDCT coefficients which contribute significantly to thereconstructed waveform. The compensation signals disclosed by Tshushimatherefore do not suffice for test and measurement applications whereextremely low waveform distortion is required.

In light of the above and other considerations there is a need for acomputationally efficient and accurate means for computing the MDCT of asinusoidal signal. The method and/or apparatus should work well at anydesired sinusoid frequency including extremes of the discrete-timefrequency spectrum and away from MDCT bin center frequencies, and shouldbe adaptable for compatibility with any analysis-synthesis window withexcellent distortion performance.

BRIEF SUMMARY OF THE INVENTION

The methods and apparatus of the present invention provide acomputationally efficient means for approximating the MDCT of a windowedsinusoid while requiring only modest memory storage requirements. Theforegoing and other objectives, features, and advantages of theinvention will be more readily understood upon consideration of thefollowing detailed description of the invention, taken in conjunctionwith the accompanying drawings.

GLOSSARY OF TERMS

block a finite, contiguous subsequence block index indicates a specificblock in an ordered block sequence segmentation block length the numberof elements in a block block phase the starting phase of the sinusoidalsequence within a block dot product the inner product of two realvectors; the sum of the products of each corresponding vector componentpair multitone a sequence comprised of two or more sinusoidal sequencesequences of differing frequencies phase vector used in the MDCTapproximation; computed with the block phase sample index indicates aspecific element within a block sinusoidal a discrete-time sequenceexpressible as a₀sin[nΩ + φ] sequence window a matrix of pre-computedsummations over the finite summation trigonometric series approximatingthe window sequence; table contains a row for each MDCT coefficient tobe approximated for a given block

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates a prior art apparatus for generating MDCT-codedsinusoidal test signals.

FIG. 2 shows a system for delivering coded sinusoidal test signalswherein several functional blocks have been replaced by a preferredembodiment of the present invention.

FIG. 3 is an activity diagram illustrating a preferred embodiment of thepresent invention.

FIG. 4 is a C source listing providing declarations, storage andauxiliary functions in accordance with a preferred embodiment of thepresent invention.

FIG. 5 is a C source listing providing a function for computing a windowsummation table in accordance with a preferred embodiment of the presentinvention.

FIG. 6 is a C source listing providing a function for computing theapproximate MDCT of a windowed block of a sinusoidal sequence inaccordance with a preferred embodiment of the present invention.

FIG. 7 is a graph comparing asymptotic complexity growth for O(N²), O(Nlog₂N), and O(N) algorithms.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 2 shows a system for delivering coded sinusoidal test signalswherein several functional blocks have been replaced by a preferredembodiment of the present invention. Elements for sinusoid generation110 as well as block windowing 121 and MDCT 122 functions from the priorart codec 120 have been replaced by a single block 230 for windowedsinusoid MDCT approximation. Certain preferred embodiments of thepresent invention may provide functionality for element 230 in thisnovel system. Blocks for subband bit allocation 240, subbandquantization 250, bitstream formatting 260, and storage or transmission270 are shown as part of a computationally efficient alternative to theprior art system depicted in FIG. 1.

The example system depicted in FIG. 2 illustrates a useful applicationof the present invention, but functional blocks 240, 250, 260, and 270are highly specific to a given coding format and are not the claimedsubject matter of this disclosure. The present invention will beapplicable to many purposes not explicitly described herein or shown inFIG. 2.

The following is a mathematical development of the fast MDCTapproximation method of the present invention. Consider a sinusoiddefined as follows where Ω is the discrete-time frequency of thesinusoid, N is the block length, m is the block index, and n is thesample index within block m:

${x\lbrack n\rbrack} = {{\sin\left\lbrack {\Omega\left( {n + \frac{mN}{2}} \right)} \right\rbrack}.}$In this disclosure the MDCT is defined by the following where x[n] isthe original signal and w[n] is the window sequence:

${X\lbrack k\rbrack} \equiv {\sum\limits_{n = 0}^{N - 1}{{w\lbrack n\rbrack}{x\lbrack n\rbrack}{{\cos\left\lbrack {\frac{2\;\pi}{N}\left( {n + \frac{1}{2} + \frac{N}{4}} \right)\left( {k + \frac{1}{2}} \right)} \right\rbrack}.}}}$

The present invention is also applicable to alternative formulations ofthe MDCT. The claims that follow should be construed to include stepsand means for computing equivalent or trivially modified definitions ofthe MDCT as practicable by the methods and apparatus of this disclosure.

-   -   In a preferred embodiment of the present invention, an        approximation to the analysis/synthesis window is employed        according to the following form:

${w^{\prime}\lbrack n\rbrack} = {\sum\limits_{l = 0}^{L - 1}{W_{l}{{\cos\left\lbrack \frac{2\;\pi\;{l\left( {n + \frac{1}{2}} \right)}}{N} \right\rbrack}.}}}$

The finite cosine series defined above includes a half-sample time shiftto allow for the best approximation of symmetric windows of length of amultiple of 2. The window coefficients W_(l) may be chosen most simplyby a dot-product decomposition of the window function into the providedcosine basis, truncating the series when the required accuracy to theprototype window is achieved.

$W_{l} = {\sum\limits_{n = 0}^{N - 1}{{w\lbrack n\rbrack}{{\cos\left\lbrack \frac{2\;\pi\;{l\left( {n + \frac{1}{2}} \right)}}{N} \right\rbrack}.}}}$

Finite cosine series coefficients may also be selected by various othermeans in accordance with the methods of the present invention includingthe use of mathematical optimization techniques such as least squares,gradient descent, or any of a number of other well-known optimizationmethods. The use of such techniques can (depending on the prototypewindow) allow an increase in MDCT approximation accuracy given a fixednumber of cosine series coefficients.

It may be possible, by modifying the definition of the MDCT or shiftingthe origin, to use a finite trigonometric series of another basis inpracticing the current invention. Insofar as such constructions areisomorphic (i.e. equivalent apart from trivial modifications) to thosepresented herein they should be construed to fall within the scope ofthe presently claimed invention.

Including the shifted finite cosine series approximation to theprototype window, an approximation to the MDCT coefficients of asinusoid can be written as:

${X^{\prime}\lbrack k\rbrack} \equiv {\sum\limits_{n = 0}^{N - 1}{{w^{\prime}\lbrack n\rbrack}{\sin\left\lbrack {\Omega\left( {n + \frac{mN}{2}} \right)} \right\rbrack}{{\cos\left\lbrack {\frac{2\;\pi}{N}\left( {n + \frac{1}{2} + \frac{N}{4}} \right)\left( {k + \frac{1}{2}} \right)} \right\rbrack}.}}}$The following definitions are informative and useful for simplifying theabove expression:

$\phi \equiv \frac{{mN}\;\Omega}{2}$$\Omega_{k} \equiv {\frac{2\;\pi}{N}\left( {k + \frac{1}{2}} \right)}$$\hat{n} \equiv {\frac{2 + N}{4}.}$To briefly explain the symbols introduced above, φ is the block phaseindicating the starting phase of the sinusoid to be approximated at thefirst sample of the current MDCT block m. For simplicity of expressionwe have allowed the block phase (φ=0 for m=0), but a constant may beadded to φ, shifting the sinusoid starting phase for all blocks m.Intuitively Ω_(k) corresponds to the center frequency of the kth MDCTbin. The sample offset “n-hat” is a constant closely related to thefunction of TDAC perfect reconstruction.Using the above definitions and a product sum-identity the approximateMDCT is rewritten:

${X^{\prime}\lbrack k\rbrack} = {{\sum\limits_{n = 0}^{N - 1}{{w^{\prime}\lbrack n\rbrack}{\sin\left\lbrack {\phi + {n\left( {\Omega - \Omega_{k}} \right)} - {\hat{n}\Omega_{k}}} \right\rbrack}}} + {\frac{1}{2}{\sum\limits_{n = 0}^{N - 1}{{w^{\prime}\lbrack n\rbrack}{{\sin\left\lbrack {\phi + {n\left( {\Omega + \Omega_{k}} \right)} + {\hat{n}\;\Omega_{k}}} \right\rbrack}.}}}}}$Including the shifted finite cosine series approximation yields thefollowing expression:

${X^{\prime}\lbrack k\rbrack} = {{\frac{1}{2}{\sum\limits_{n = 0}^{N - 1}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\cos\left\lbrack \frac{2\;\pi\;{l\left( {n + \frac{1}{2}} \right)}}{N} \right\rbrack}{\sin\left\lbrack {\phi + {n\left( {\Omega - \Omega_{k}} \right)} - {\hat{n}\;\Omega_{k}}} \right\rbrack}}}}} + {\frac{1}{2}{\sum\limits_{n = 0}^{N - 1}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\cos\left\lbrack \frac{2\;\pi\;{l\left( {n + \frac{1}{2}} \right)}}{N} \right\rbrack}{{\sin\left\lbrack {\phi + {n\left( {\Omega + \Omega_{k}} \right)} + {\hat{n}\;\Omega_{k}}} \right\rbrack}.}}}}}}$Using a product-sum identity, exchanging the order of summation andseparating terms with a sum-difference identity it can be seen that:

${X^{\prime}\lbrack k\rbrack} = {{\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}\left( {{{\sin\left\lbrack {n\left( {\Omega - \Omega_{k} - \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\cos\left\lbrack {{\hat{n}\;\Omega_{k}} - \phi + \frac{\pi\; l}{N}} \right\rbrack}} - {{\cos\left\lbrack {n\left( {\Omega - \Omega_{k} - \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\sin\left\lbrack {{\hat{n}\;\Omega_{k}} - \phi + \frac{\pi\; l}{N}} \right\rbrack}}} \right)}}}} + {\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}\left( {{{\sin\left\lbrack {n\left( {\Omega - \Omega_{k} + \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\cos\left\lbrack {{\hat{n}\;\Omega_{k}} - \phi - \frac{\pi\; l}{N}} \right\rbrack}} - {{\cos\left\lbrack {n\left( {\Omega - \Omega_{k} + \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\sin\left\lbrack {{\hat{n}\;\Omega_{k}} - \phi - \frac{\pi\; l}{N}} \right\rbrack}}} \right)}}}} + {\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}\left( {{{\sin\left\lbrack {n\left( {\Omega + \Omega_{k} - \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\cos\left\lbrack {{\hat{n}\;\Omega_{k}} + \phi - \frac{\pi\; l}{N}} \right\rbrack}} + {{\cos\left\lbrack {n\left( {\Omega + \Omega_{k} - \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\sin\left\lbrack {{\hat{n}\;\Omega_{k}} + \phi - \frac{\pi\; l}{N}} \right\rbrack}}} \right)}}}} + {\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}{\left( {{{\sin\left\lbrack {n\left( {\Omega + \Omega_{k} + \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\cos\left\lbrack {{\hat{n}\;\Omega_{k}} + \phi + \frac{\pi\; l}{N}} \right\rbrack}} + {{\cos\left\lbrack {n\left( {\Omega + \Omega_{k} + \frac{2\;\pi\; l}{N}} \right)} \right\rbrack}{\sin\left\lbrack {{\hat{n}\;\Omega_{k}} + \phi + \frac{\pi\; l}{N}} \right\rbrack}}} \right).}}}}}}$A few more definitions are now helpful to further simplify the aboveexpression:

${\theta_{l,k}^{+} \equiv \left( {\Omega_{k} + \frac{2\;\pi\; l}{N}} \right)} = {\frac{2\;\pi}{N}\left( {\frac{1}{2} + k + l} \right)}$${\theta_{l,k}^{-} \equiv \left( {\Omega_{k} - \frac{2\;\pi\; l}{N}} \right)} = {\frac{2\;\pi}{N}\left( {\frac{1}{2} + k - l} \right)}$ψ_(k, m)⁺ ≡ n̂ Ω_(k) + ϕ ψ_(k, m)⁻ ≡ n̂ Ω_(k) − ϕ.The expression may now be written a little more cleanly:

${X^{\prime}\lbrack k\rbrack} = {{\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}\left( {{{\sin\left\lbrack {n\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}{\cos\left\lbrack {\psi_{k,m}^{-} + \frac{\pi\; l}{N}} \right\rbrack}} - {{\cos\left\lbrack {n\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\psi_{k,m}^{-} + \frac{\pi\; l}{N}} \right\rbrack}}} \right)}}}} + {\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}\left( {{{\sin\left\lbrack {n\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}{\cos\left\lbrack {\psi_{k,m}^{-} - \frac{\pi\; l}{N}} \right\rbrack}} - {{\cos\left\lbrack {n\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\psi_{k,m}^{-} - \frac{\pi\; l}{N}} \right\rbrack}}} \right)}}}} + {\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}\left( {{{\sin\left\lbrack {n\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}{\cos\left\lbrack {\psi_{k,m}^{+} - \frac{\pi\; l}{N}} \right\rbrack}} + {{\cos\left\lbrack {n\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\psi_{k,m}^{+} - \frac{\pi\; l}{N}} \right\rbrack}}} \right)}}}} + {\frac{1}{4}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sum\limits_{n = 0}^{N - 1}{\left( {{{\sin\left\lbrack {n\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}{\cos\left\lbrack {\psi_{k,m}^{+} + \frac{\pi\; l}{N}} \right\rbrack}} + {{\cos\left\lbrack {n\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\psi_{k,m}^{+} + \frac{\pi\; l}{N}} \right\rbrack}}} \right).}}}}}}$Using sum and difference identities and factoring like terms the aboveexpression can be rewritten as:

${X^{\prime}\lbrack k\rbrack} = {{\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{+} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}\left( {{\sin\left\lbrack {n\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack} + {\sin\left\lbrack {n\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)}}}} + {\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{+} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}\left( {{\cos\left\lbrack {n\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack} - {\cos\left\lbrack {n\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)}}}} + {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{+} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}\left( {{\cos\left\lbrack {n\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack} + {\cos\left\lbrack {n\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)}}}} + {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{+} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}\left( {{\sin\left\lbrack {n\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack} - {\sin\left\lbrack {n\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}} \right)}}}} + {\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{-} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}\left( {{\sin\left\lbrack {n\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack} + {\sin\left\lbrack {n\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)}}}} + {\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{-} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}\left( {{\cos\left\lbrack {n\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack} - {\cos\left\lbrack {n\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}} \right)}}}} - {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{-} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}\left( {{\cos\left\lbrack {n\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack} + {\cos\left\lbrack {n\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)}}}} + {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{-} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}{\sum\limits_{n = 0}^{N - 1}{\left( {{\sin\left\lbrack {n\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack} - {\sin\left\lbrack {n\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}} \right).}}}}}}$Notice that terms directly involving n have been separated from thosenot involving n. It is possible to perform the summations over nanalytically using the following formulae:

${\sum\limits_{p = 0}^{P}{\sin\lbrack{pC}\rbrack}} = \frac{{\sin\left( {\frac{1}{2}{PC}} \right)}{\sin\left( {\frac{1}{2}\left( {P + 1} \right)C} \right)}}{\sin\left( {\frac{1}{2}C} \right)}$${\sum\limits_{p = 0}^{P}{\cos\lbrack{pC}\rbrack}} = {\frac{{\cos\left( {\frac{1}{2}{PC}} \right)}{\sin\left( {\frac{1}{2}\left( {P + 1} \right)C} \right)}}{\sin\left( {\frac{1}{2}C} \right)}.}$Performing summations over n analytically, the approximate MDCT can beexpressed:

${X^{\prime}\lbrack k\rbrack} = {{\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{+} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}\left\lbrack {{{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack} + \frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)} + {{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack} - \frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)}} \right\rbrack}}} + {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{+} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}\left\lbrack {{{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack} + \frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)} + {{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{-}} \right)} \right\rbrack} - \frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega + \theta_{l,k}^{+}} \right)} \right\rbrack}} \right)}} \right\rbrack}}} + {\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{-} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{W_{l}\left\lbrack {{{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack} + \frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)} + {{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack} - \frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}} \right)}} \right\rbrack}}} - {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{-} \right\rbrack}{\sum\limits_{l = 0}^{L - 1}{{W_{l}\left\lbrack {{{\cos\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack} + \frac{{\cos\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}} \right)} - {{\sin\left\lbrack \frac{\pi\; l}{N} \right\rbrack}\left( {\frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{-}} \right)} \right\rbrack} - \frac{{\sin\left\lbrack {\frac{1}{2}\left( {N - 1} \right)\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}{\sin\left\lbrack {\frac{N}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}}{\sin\left\lbrack {\frac{1}{2}\left( {\Omega - \theta_{l,k}^{+}} \right)} \right\rbrack}} \right)}} \right\rbrack}.}}}}$

Since the remaining terms in each of the four sums over l areindependent of the block m, this form lends itself naturally to the useof a table, which need only to be computed once for a given sinusoidfrequency Ω. This allows very efficient computation as viewed on averageover many blocks. Employing a pre-computed window summation table T witha unique row for each bin k to be approximated, the following expressionis obtained:

${X^{\prime}\lbrack k\rbrack} = {{\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{+} \right\rbrack}{T\left\lbrack {k,1} \right\rbrack}} + {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{+} \right\rbrack}{T\left\lbrack {k,2} \right\rbrack}} + {\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{-} \right\rbrack}{T\left\lbrack {k,3} \right\rbrack}} - {\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{-} \right\rbrack}{{T\left\lbrack {k,4} \right\rbrack}.}}}$

In a vector-matrix formulation, the kth approximate MDCT coefficient isjust the dot product of the kth row of the window summation table T witha kth phase vector ψ_(k,m).

$\Psi_{k,m} = {\begin{pmatrix}{\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{+} \right\rbrack}} \\{\frac{1}{4}{\sin\left\lbrack \psi_{k,m}^{+} \right\rbrack}} \\{\frac{1}{4}{\cos\left\lbrack \psi_{k,m}^{-} \right\rbrack}} \\{\frac{1}{4}{\sin\left\lbrack {- \psi_{k,m}^{-}} \right\rbrack}}\end{pmatrix}.}$Using this definition the kth approximate MDCT coefficient may beexpressed very cleanly:X′[k]=T[k]·Ψ _(k,m).

For each block m and bin k there is a non-trivial cost associated withcomputing the phase vector ψ_(k,m). This cost may be significant becausesine or cosine computations typically require many more processor cyclesthan addition or multiplication. The cost of computing the kth phasevector ψ_(k,m) can be greatly reduced by use of the followingidentities:sin [ψ_(k,m) ⁺]=sin [{circumflex over (n)}Ω _(k)+φ]=sin [{circumflexover (n)}Ω _(k)] cos [φ]+cos [{circumflex over (n)}Ω _(k)] sin [φ]sin [ψ_(k,m) ⁻]=sin [{circumflex over (n)}Ω _(k)−φ]=sin [{circumflexover (n)}Ω _(k)] cos [φ]−cos [{circumflex over (n)}Ω _(k)] sin [φ]cos [ψ_(k,m) ⁺]=cos [{circumflex over (n)}Ω _(k)+φ]=cos [{circumflexover (n)}Ω _(k)] cos [φ]−sin [{circumflex over (n)}Ω _(k)] sin [φ]cos [ψ_(k,m) ⁻]=cos [{circumflex over (n)}Ω _(k)−φ]=cos [{circumflexover (n)}Ω _(k)] cos [φ]+sin [{circumflex over (n)}Ω _(k)] sin [φ]

Using the identities above, the kth phase vector ψ_(k,m) may beseparated into static and dynamic parts. Only one cosine and sinecomputation are required per block to produce the block phase φ. Factorsinvolving the bin center frequency Ω_(k) are constant across all blocksm, and indeed for all sinusoid frequencies Ω. To approximate the MDCT ofa sine wave of any desired non-unity amplitude, it is only necessary tofinally post-multiply the coefficients produced by the methods of thepresent invention by a scale factor.

FIG. 3 is an activity diagram illustrating a preferred embodiment of thepresent invention. The step of defining a finite trigonometric series toapproximate the window sequence is not shown here.

Refer to the C function void window_coeffs (float*window) in the sourcelisting of FIG. 4 providing means for computing the window coefficientswhen using a shifted finite cosine series as an approximation to thewindow sequence.

Assuming that the window coefficients for the finite trigonometricseries approximating the window sequence have been computed, the nextstep is to define a frequency 305 for the sinusoidal sequence. A windowsummation table may then be pre-computed 310 using the finitetrigonometric series (i.e. window coefficients) and the definedfrequency of the sinusoidal sequence.

Refer to the C function void build_tables( ) in the source listing ofFIG. 5 providing means for pre-computing a window summation table usingthe functions float sumsin(int P, float C) and float sumcos(int P, floatC) in the source listing of FIG. 4.

In the preferred embodiment shown in FIG. 3, the block index is reset(m=0) 315 before beginning the actual MDCT approximation. First in theloop, the block phase is computed 320 using the defined frequency of thesinusoidal sequence, the block length N, and the block index m. Now aloop is made over all MDCT coefficients to be approximated, starting inthis preferred embodiment with the lowest frequencies (k=0) 325. For thekth MDCT coefficient the phase vector is computed 330 using the blockphase. The kth MDCT coefficient is approximated by computing 340 the dotproduct of row k of the window summation table with the phase vector.

Refer to the C function void compute_coeffs (float*coeffs, floatamplitude) in the source listing of FIG. 6 providing means forperforming the MDCT approximation as described above.

If it is determined 350 there are more MDCT coefficients to beapproximated, then the bin number k is incremented 345, otherwise theapproximate MDCT is stored or transmitted 360 for use by a callingsoftware process or cooperating hardware. If it is then determined 370that there are more blocks to be approximated then the block index m isincremented 380 and the block phase for the next block is computed 320.

Because the MDCT is a linear transformation, it is straightforward toconstruct the approximate MDCT of two or more sinusoidal sequences ofdiffering frequencies (i.e. a multitone sequence) by linear combinationof the results of two or more independent MDCT approximations accordingto the present invention. Because the computational and memoryrequirements of the present invention are small it may be possible tosimultaneously approximate and linearly combine the MDCT coefficientsfor many sinusoids using commonly available and inexpensivemicroprocessor hardware, although for very large numbers of sinusoidsthe computational savings over a direct or FFT-based MDCT would besomewhat diminished. The use of multitone signals to perform fasttransfer function and distortion measurements is disclosed in U.S. Pat.No. 5,420,516 (Cabot).

The present invention is also adaptable to perform additive synthesisdirectly in the MDCT domain. Multiple harmonically related (or not) sinewaves may be approximated with any desired amplitude and phaserelationship to produce a variety of musically useful timbres. With theaddition of controls for the temporal envelope of the signal over manyMDCT blocks and an interface to a pitch control system such as MIDI, amusically useful synthesizer could be obtained.

FIG. 7 is a graph comparing asymptotic complexity growth for O(N²), O(Nlog₂N), and O(N) algorithms. The precise number of discrete computationsrequired for computing the MDCT is very platform and code-specific sothe graph should be interpreted as a dimensionless model of computationgrowth with respect to the block length N. Direct MDCT computation forlarge block lengths N is very computationally expensive with anasymptotic complexity of O(N²) 710. More sophisticated DFT-based methodswith complex pre- and post-multiplications have an improved asymptoticcomplexity of O(N log₂N) 720.

The present invention provides a means for computing an accurateapproximation of the MDCT of a windowed sinusoid with an asymptoticcomplexity of only O(N) 730. For large block lengths N the presentinvention allows substantial savings in both the computational cost ofperforming the MDCT itself as well as entirely avoiding computationsrequired for low-distortion sinusoidal signal generation. Memory storagerequirements for implementing the methods and apparatus of the presentinvention as disclosed in this specification are very modest. The windowsummation table contains only 2N entries, and the static part of thephase vector calculation requires storing at most N values. In addition,the present invention does not require special computational hardwareand is straightforward to implement.

The terms and expressions that have been employed in the foregoingspecification are used as terms of description and not of limitation,and are not intended to exclude equivalents of the features shown anddescribed or portions of them. The scope of the invention is defined andlimited only by the claims that follow.

1. a method for generating an audio sine wave directly in the transformdomain by approximating an MDCT coefficient of a block of a sinusoidalsequence having a defined frequency, the block being multiplied by awindow sequence and having a block length and a block index, said methodcomprising: defining a finite trigonometric series to approximate thewindow sequence, pre-computing a window summation table using saidfinite trigonometric series and the defined frequency, said windowsummation table having a row corresponding to the MDCT coefficient,computing a block phase with the defined frequency of the sinusoidalsequence, the block length and the block index, computing a phase vectorcorresponding to the MDCT coefficient using said block phase,approximating the value of the MDCT coefficient by computing a dotproduct of said row of said window summation table with said phasevector, and performing the above steps using a processor to generatesaid audio sine wave.
 2. The method of claim 1 wherein said step ofdefining a finite trigonometric series to approximate the windowsequence is performed according to the following equation where W_(l) isa window coefficient, n is the sample index, and N is the block length:${w^{\prime}\lbrack n\rbrack} = {\sum\limits_{l = 0}^{L - 1}{W_{l}{{\cos\left\lbrack \frac{2\;\pi\;{l\left( {n + \frac{1}{2}} \right)}}{N} \right\rbrack}.}}}$3. The method of claim 1 further comprising post-multiplying said dotproduct by a scale factor to produce a desired amplitude for thesinusoidal sequence.
 4. An apparatus for generating a sine wave directlyin the transform domain by approximating an MDCT coefficient of a blockof a sinusoidal sequence having a defined frequency, the block beingmultiplied by a window sequence and having a block length and a blockindex, said apparatus comprising: means for defining a finitetrigonometric series to approximate the window sequence, means forpre-computing a window summation table using said finite trigonometricseries and the defined frequency, said window summation table having arow corresponding to the MDCT coefficient, means for computing a blockphase with the defined frequency of the sinusoidal sequence, the blocklength, and the block index, means for computing a phase vectorcorresponding to the MDCT coefficient using said block phase, and meansfor approximating the value of the MDCT coefficient by computing a dotproduct of said row of said window summation table with said phasevector.
 5. The apparatus of claim 4 wherein said means for defining afinite trigonometric series to approximate the window sequence operatesaccording to the following equation where W_(l) is a window coefficient,n is the sample index, and N is the block length:${w^{\prime}\lbrack n\rbrack} = {\sum\limits_{l = 0}^{L - 1}{W_{l}{{\cos\left\lbrack \frac{2\;\pi\;{l\left( {n + \frac{1}{2}} \right)}}{N} \right\rbrack}.}}}$6. The apparatus of claim 4 further comprising means forpost-multiplying said dot product MDCT coefficient by a scale factor toproduce a desired amplitude for the sinusoidal sequence.
 7. A method forgenerating audio sine waves directly in the transform domain byapproximating an MDCT coefficient of a block of a multitone sequence,the multitone sequence comprising the sum of a first sinusoidal sequencehaving a first defined frequency and a second sinusoidal sequence havinga second defined frequency, the block being multiplied by a windowsequence and having a block length and a block index, said methodcomprising: defining a finite trigonometric series to approximate thewindow sequence, pre-computing a first window summation table using saidfinite trigonometric series and the defined frequency, said first windowsummation table having a first row corresponding to the MDCTcoefficient, and pre-computing a second window summation table usingsaid finite trigonometric series and the second defined frequency, saidsecond window summation table having a second row corresponding to theMDCT coefficient, computing a first block phase with the first definedfrequency of the first sinusoidal sequence, the block length, and theblock index, and computing a second block phase with the second definedfrequency of the second sinusoidal sequence, the block length, and theblock index, computing a first phase vector corresponding to the MDCTcoefficient using said first block phase, and computing a second phasevector corresponding to the MDCT coefficient using said second blockphase, computing a first dot product of said first row of said firstwindow summation table with said first phase vector, and computing asecond dot product of said second row of said second window summationtable with said second phase vector, approximating the value of the MDCTcoefficient by adding said first dot product and said second dotproduct, and performing the above steps using a processor to generatesaid audio sine waves.
 8. The method of claim 1 further comprising thestep of delivering coded sinusoidal test signals.
 9. The apparatus ofclaim 4 further comprising means for delivering coded sinusoidal testsignals.
 10. The method of claim 7 further comprising the step ofdelivering coded sinusoidal test signals.
 11. The method of claim 7further comprising post-multiplying said dot product by a scale factorto produce a desired amplitude for the sinusoidal sequence.
 12. Themethod of claim 1 further comprising the step of repeating at least onestep selected from the group consisting of: (a) computing a block phasewith the defined frequency of the sinusoidal sequence, the block length,and the block index, (b) computing a phase vector corresponding to theMDCT coefficient using said block phase, and (c) approximating the valueof the MDCT coefficient by computing a dot product of said row of saidwindow summation table with said phase vector.
 13. The apparatus ofclaim 4 repetitively using at least one of the following means selectedfrom the group consisting of: (a) means for computing a block phase withthe defined frequency of the sinusoidal sequence, the block length, andthe block index, (b) means for computing a phase vector corresponding tothe MDCT coefficient using said block phase, and (c) means forapproximating the value of the MDCT coefficient by computing a dotproduct of said row of said window summation table with said phasevector.
 14. The method of claim 7 further comprising the step ofrepeating at least one step selected from the group consisting of: (a)computing a first block phase with the first defined frequency of thefirst sinusoidal sequence, the block length, and the block index, andcomputing a second block phase with the second defined frequency of thesecond sinusoidal sequence, the block length, and the block index, (b)computing a first phase vector corresponding to the MDCT coefficientusing said first block phase, and computing a second phase vectorcorresponding to the MDCT coefficient using said second block phase, (c)computing a first dot product of said first row of said first windowsummation table with said first phase vector, and computing a second dotproduct of said second row of said second window summation table withsaid second phase vector, and (d) approximating the value of the MDCTcoefficient by adding said first dot product and said second dotproduct.
 15. The method of claim 1 further comprising the step ofrepeating the steps of: (a) computing a block phase with the definedfrequency of the sinusoidal sequence, the block length, and the blockindex, (b) computing a phase vector corresponding to the MDCTcoefficient using said block phase, and (c) approximating the value ofthe MDCT coefficient by computing a dot product of said row of saidwindow summation table with said phase vector.
 16. The apparatus ofclaim 4 repetitively using the following means: (a) means for computinga block phase with the defined frequency of the sinusoidal sequence, theblock length, and the block index, (b) means for computing a phasevector corresponding to the MDCT coefficient using said block phase, and(c) means for approximating the value of the MDCT coefficient bycomputing a dot product of said row of said window summation table withsaid phase vector.
 17. The method of claim 7 further comprising the stepof repeating the steps of: (a) computing a first block phase with thefirst defined frequency of the first sinusoidal sequence, the blocklength, and the block index, and computing a second block phase with thesecond defined frequency of the second sinusoidal sequence, the blocklength, and the block index, (b) computing a first phase vectorcorresponding to the MDCT coefficient using said first block phase, andcomputing a second phase vector corresponding to the MDCT coefficientusing said second block phase, (c) computing a first dot product of saidfirst row of said first window summation table with said first phasevector, and computing a second dot product of said second row of saidsecond window summation table with said second phase vector, and (d)approximating the value of the MDCT coefficient by adding said first dotproduct and said second dot product.
 18. The method of claim 1,repeating said step of pre-computing a window summation table using saidfinite trigonometric series and the defined frequency, said windowsummation table having a row corresponding to the MDCT coefficient inresponse to a change in frequency.
 19. The apparatus of claim 4, inresponse to a change in frequency repetitively using means forpre-computing a window summation table using said finite trigonometricseries and the defined frequency, said window summation table having arow corresponding to the MDCT coefficient.
 20. The method of claim 7, inresponse to a change in frequency, repeating said step of pre-computinga first window summation table using said finite trigonometric seriesand the defined frequency, said first window summation table having afirst row corresponding to the MDCT coefficient, and repeating said stepof pre-computing a second window summation table using said finitetrigonometric series and the second defined frequency, said secondwindow summation table having a second row corresponding to the MDCTcoefficient.
 21. The method of claim 1, said step of defining a finitetrigonometric series to approximate the window sequence furthercomprising the step of defining a finite trigonometric multiple elementseries to approximate the window sequence.
 22. The apparatus of claim 4,said means for defining a finite trigonometric series to approximate thewindow sequence further comprising means for defining a finitetrigonometric multiple element series to approximate the windowsequence.
 23. The method of claim 7, said step of defining a finitetrigonometric series to approximate the window sequence furthercomprising the step of defining a finite trigonometric multiple elementseries to approximate the window sequence.